Selecting communication link between client and server

ABSTRACT

A client is coupled to a modem pool and a server by a communication link in a wide area network. The client allows a user to browse the World Wide Web in response to user inputs entered entirely from a remote control device using a television set as a display device. The communication link to the client is shared by a telephone circuit at the client end of the link. A disruption in communication with the server may occur due to a Call Waiting signal caused by an incoming telephone call. The incoming call includes Caller ID information. In response to such a disruption, communication with the server is terminated. After pausing for a predetermined period of time, the client automatically re-establishes communication with the server if the line is clear. Upon reconnecting to the server, the client accesses a “White Pages” telephone directory Web site on a remote server. Using the number provided in the Caller ID information, the client looks up the name of the caller from the directory and stores the number and the corresponding name. Each time an incoming call is subsequently received from that number, the client displays the name of the calling party to the user as the call is received.

RELATED APPLICATIONS

This is a divisional of U.S. patent application Ser. No. 08/660,087,filed Jun. 3, 1996, now U.S. Pat. No. 5,896,444 which is herebyincorporated by reference.

BACKGROUND OF THE INVENTION

1. The Field of the Invention

The present invention pertains to the field of client-server computernetworking. More particularly, the present invention relates to a methodand apparatus for providing communications between a client and a serverin a computer network.

2. The Prior State of the Art

The number of homes and businesses using personal computers hasincreased substantially in recent years. Along with this increase hascome an explosion in the use of the Internet, and particularly in theuse of the World-Wide Web (“the Web”). The Web is a collection offormatted hypertext pages located on numerous computers around the worldthat are logically connected by the Internet. Advances in networktechnology, particularly software for providing user interfaces to theWeb (“Web browsers”), have made the Web accessible to a large segment ofthe population. However, despite the growth in the development and useof the Web, many people are still unable to take advantage of thisimportant resource.

Access to the Web has thus far been limited mostly to people who haveaccess to a personal computer. However, many people cannot afford thecost of even a relatively inexpensive personal computer, while othersare either unable or unwilling to learn the basic computer skills thatare required to access the Web. Furthermore, Web browsers in the priorart generally do not provide the degree of user-friendliness desired bysome people, and many computer novices do not have the patience to learnhow to use the software. Therefore, it would be desirable to provide aninexpensive means by which a person can access the Web without the useof a personal computer. In particular, it would be desirable for aperson to be able to access the Web pages using an ordinary televisionset and a remote control, so that the person feels more as if he or sheis simply changing television channels, rather than utilizing a complexcomputer network.

Computer systems often communicate data with each other over largedistances using standard telephone lines (also known as “POTS,” forPlain Old Telephone Service). Often a computer does not have a telephoneline dedicated solely for its own use, however. Instead, a computeroften uses a telephone line that is also used for standard telephonevoice communication. Such dual use of the telephone line can causeproblems for computers. For example, many conventional telephoneservices provide a feature known as “Call Waiting,” which notifies aperson involved in a telephone conversation when there is anotherincoming call on that line. The person receiving the new call generallyis notified by an audible tone caused by a Call Waiting signal. Inresponse, the person can either switch to the other call withoutdisconnecting the call already in progress (a technique sometimes called“flashing”) or simply ignore the new call. However, a Call Waitingsignal can severely disrupt data communications if it is received whilea computer is using the line.

Although some communications software provides the ability to disablethe Call Waiting signal, doing so has the disadvantage that thecomputer's user generally has no way of knowing when someone is tryingto reach him by telephone. Hence, it would be desirable to avoid severedisruptions without disabling the Call Waiting capability, particularlywhen browsing the Web.

Prior art systems that have accommodated Call Waiting during modemcommunications have done so only in client-to-client communications, andhave only handled the case of both clients and modems being programmedto handle a Call Waiting interruption. Examples of such systems are avoice-over-data modem designed by Phylon, Inc., of Fremont, Calif., anda data-only modem designed by Catapult Entertainment of Cupertino,Calif. Both products are designed for video game play over a modem, andboth handle Call Waiting interruptions by detecting the interruption,signaling the other client of the condition, and then both clientsterminating the phone connection to allow the incoming call to beanswered. When the call is completed, one modem dials the other toresume game play.

These two systems do not handle a more difficult condition: that of aclient modem that is designed to handle a Call Waiting interruptionwhich is dialed into a server modem that is not. For example, such aclient modem might dial into a modem pool, such as that providingInternet access, which was designed using conventional modems. Sincesuch conventional modems were designed with the assumption that dial-upwould be through a phone connection that was not to be periodicallyinterrupted by Call Waiting, they do not support the signaling andreconnect protocols that allowed the prior art video game modems toresume a connection smoothly after a Call Waiting interruption.

Unfortunately, the vast majority of server modems in use in the worldtoday are conventional modems designed with the assumption that thedial-up is through a connection not periodically interrupted by CallWaiting. Thus, as a practical matter, the prior art video game modems,which rely on the system on the other side of the phone connection asincluding a Call Waiting aware modem and client, do not handle aclient-server modem connection that is interrupted by Call Waiting.

In addition to the Call Waiting feature, some telephone services providea feature known as Caller ID. Caller ID provides a person who receives atelephone call and who has the proper equipment with the phone numberfrom which an incoming call originates. This service can be quite usefulwhen the person receiving the call recognizes the number. However,people sometimes receive telephone calls originating from telephonenumbers with which they are not familiar. Therefore, it would bedesirable to provide a Caller ID subscriber with more detailedinformation regarding the source of an incoming call. It would furtherbe desirable to provide such information to a subscriber who is usingthe telephone line to browse the Web at the time the call is received.

SUMMARY AND OBJECTS OF THE INVENTION

In a client system communicating with a server system over acommunication link, a method is provided of responding to a disruptionin communication with the server system. The communication link includesa telephone line. In response to the disruption, the client terminatescommunication with the server. The client then established an on-hookcondition on the telephone line and waits for a ring signal.

Other features of the present invention will be apparent from theaccompanying drawings and from the detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings, in which likereferences indicate similar elements and in which:

FIG. 1 illustrates several client systems connected to a server systemin a network.

FIG. 2A illustrates a client system for browsing the World-Wide Web.

FIG. 2B is a block diagram of an electronics unit of the client system.

FIG. 3 illustrates telephones, a client system, and a standard personalcomputer sharing one telephone line.

FIG. 4 illustrates the functional relationship between hardware andsoftware in the client system.

FIG. 5 is a flow diagram illustrating a routine for handling aninterruption in communication in the client system.

FIG. 6 is a flow diagram illustrating a routine for responding to acall-waiting signal.

FIG. 7 is a flow diagram illustrating a routine for determining a nameassociated with a phone number derived from Caller ID information.

FIG. 8 is a flow diagram illustrating a routine used by a client systemfor selectively notifying a user of an incoming telephone call.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A method and apparatus are described for managing communications betweena client and a server in a computer network. In the followingdescription, for purposes of explanation, numerous specific details areset forth in order to provide a thorough understanding of the presentinvention. It will be evident, however, to one skilled in the art thatthe present invention may be practiced without these specific details.In other instances, well-known structures and devices are shown in blockdiagram form in order to avoid unnecessarily obscuring the presentinvention.

The present invention includes various steps, which will be describedbelow. The steps can be embodied in machine-executable instructions,which can be used to cause a general-purpose or special-purposeprocessor programmed with the instructions to perform the steps.Alternatively, the steps of the present invention might be performed byspecific hardware components that contain hardwired logic for performingthe steps, or by any combination of programmed computer components andcustom hardware components.

The present invention is included in a system, known as WebTV™, forproviding a user with access to the Internet. A user of a WebTV™ clientgenerally accesses a WebTV™ server via a direct-dial telephone (POTS,for “plain old telephone service”), ISDN (Integrated Services DigitalNetwork), or other similar connection, in order to browse the Web, sendand receive electronic mail (e-mail), and use various other WebTV™network services. In the preferred embodiment, the WebTV™ networkservices are provided by WebTV™ servers using software residing withinthe WebTV™ servers in conjunction with software residing within a WebTV™client.

FIG. 1 illustrates a basic configuration of the WebTV™ network accordingto one embodiment. A number of WebTV™ clients 1 are coupled to a modempool 2 via direct-dial, bi-directional data connections 29, which may betelephone (POTS, i.e., “plain old telephone service”), ISDN (IntegratedServices Digital Network), or any other similar type of connection. Themodem pool 2 is coupled typically through a router, such as thatconventionally known in the art, to a number of remote servers 4 via aconventional network infrastructure 3, such as the Internet. The WebTV™system also includes a WebTV™ server 5, which specifically supports theWebTV™ clients 1. The WebTV™ clients 1 each have a connection to theWebTV™ server 5 either directly or through the modem pool 2 and theInternet 3. Note that the modem pool 2 is a conventional modem pool,such as those found today throughout the world providing access to theInternet and private networks.

Note that in this description, in order to facilitate explanation theWebTV™ server 5 is generally discussed as if it were a single device,and functions provided by the WebTV™ services are generally discussed asbeing performed by such single device. However, the WebTV™ server 5 mayactually comprise multiple physical and logical devices connected in adistributed architecture, and the various functions discussed belowwhich are provided by the WebTV™ services may actually be distributedamong multiple WebTV™ server devices.

FIG. 2A illustrates a WebTV™ client 1. The WebTV™ client 1 includes anelectronics unit 10 (hereinafter referred to as “the WebTV™ box 10”), anordinary television set 12, and a remote control 11. In an alternativeembodiment of the present invention, the A WebTV™ box 10 is built intothe television set 12 as an integral unit. The WebTV™ box 10 includeshardware and software for providing the user with a graphical userinterface, by which the user can access the WebTV™ network services,browse the Web, send e-mail, and otherwise access the Internet.

The WebTV™ client 1 uses the television set 12 as a display device. TheWebTV™ box 10 is coupled to the television set 12 by a video link 6. Thevideo link 6 is an RF (radio frequency), S-video, composite video, orother equivalent form of video link. The communication link 29 betweenthe WebTV™ box 10 and the server 5 is either a telephone (POTS)connection 29 a or an ISDN connection 29 b. The WebTV™ box 10 receivesAC (alternating current) power through an AC power line 7.

Remote control 11 is operated by the user in order to control the WebTV™client 1 in browsing the Web, sending e-mail, and performing otherInternet-related functions. The WebTV™ box 10 receives commands fromremote control 11 via an infrared (IR) communication link. Inalternative embodiments, the link between the remote control 11 and theWebTV™ box 10 may be RF or any equivalent mode of transmission.

FIG. 2B is a block diagram of the internal features of the WebTV™ box10. Operation of the WebTV™ client 1 is controlled by a centralprocessing unit (CPU) 21 which is coupled to an Application-SpecificIntegrated Circuit (ASIC) 20. The CPU 21 executes software designed toimplement features of the present invention. ASIC 20 contains circuitrywhich may be used to implement certain features provided by the WebTV™client 1. ASIC 20 is coupled to an audio digital-to-analog converter 25which provides audio output to television 12. In addition, ASIC 20 iscoupled to a video encoder 26 which provides video output to televisionset 12. An IR interface 24 detects IR signals transmitted by remotecontrol 11 and, in response, provides corresponding electrical signalsto ASIC 20. A standard telephone modem 27 and an ISDN modem 30 arecoupled to ASIC 20 to provide connections 29 a and 29 b, respectively,to the modem pool 2 and, via the Internet 3, to the remote servers 4.Note that the WebTV™ box 10 also may include a cable television modem(not shown).

Also coupled to ASIC 20 is Read-Only Memory (ROM) 22, which providesstorage of program code for implementing the application software to beexecuted by the WebTV™ Note that ROM 22 may be a programmable ROM (PROM)or any form of erasable PROM (EPROM) or Flash memory. Also coupled toASIC 20 is Random Access Memory (RAM) 23. mass storage device 28 mayoptionally be provided and coupled to ASIC 20. The mass storage device28 may be used to input software or data to the client or to downloadsoftware of data received over network connection 29. The mass storagedevice 28 includes any suitable medium for storing machine-executableinstructions, such as magnetic disks, optical disks, and the like.

FIG. 3 illustrates a WebTV™ client 1 implemented in a home 15 accordingto one exemplary embodiment. Within the home 15, the WebTV™ client 1shares the telephone line 29 a with two conventional telephone sets(“extensions”)10 and a modem of a personal computer 12. Accordingly, thetelephone line 29 a is used for both data communication (by WebTV™client 1 and the personal computer 12) and voice communication atdifferent times. The telephone line 29 a corresponds to a singletelephone number within the home 15.

As mentioned above, the WebTV™ box 10 includes application softwareincluding a Web browser. Referring now to FIG. 2A, the above-mentionedapplication software 31 operates in conjunction with operating system(OS) software 32. The OS software 32 includes various device drivers andotherwise provides an interface between the application software 31 andthe system hardware components 40 (i.e., the elements illustrated inFIG. 1C).

In the preferred embodiment, the application software 31 and OS software32 are generally stored in ROM 22. It will be recognized, however, thateither or both of application software 31 and OS software 32 can bestored on any suitable storage medium, including magnetic or opticalstorage devices.

Assume now that the WebTV™ client 1 is implemented in a configuration asshown in FIG. 3. That is, the WebTV™ client 1 shares a single telephoneline 29 a with one or more standard telephone extensions in a home 15.Assume further that telephone service provided to the home 15 includesthe Call Waiting and Caller ID services. Hence, an incoming telephonecall received at the home 15 while the user is browsing the Web usingthe WebTV™ client 1 will be indicated by reception of a Call Waitingsignal. The Call Waiting signal will cause disruptions in datacommunications on the telephone line. Some prior art client-to-servermodems treat a disruption such as a Call Waiting signal as an errorcondition and either attempt to maintain the data connection or simplylose the connection. Other prior art client-to-server modems simplydisable the Call Waiting signal. A disadvantage of both of theseapproaches is that the user of the Web browser is typically left unawareof the incoming call. The present invention, however, overcomes thisdisadvantage.

Any interruption in data communication is essentially treated as a pausecondition by the WebTV™ client 1. Specifically, in response to anyinterruption in data communication, including a Call Waiting signal, theclient 1 automatically disconnects from the modem pool 2 and thenautomatically reconnects to the modem pool 2 at a later time whilemaintaining the user's browsing state. Referring now to FIG. 5, if aninterruption in communication is detected by the WebTV™ client 1 (step501) while the client 1 is in contact with the WebTV™ server 5 (or anyother server), then the client 1 saves information describing thecurrent browsing status to memory (RAM) 23 (step 502). The savedinformation includes all information that is necessary to exactlyidentify the Web site at which the user was browsing and toautomatically return to that location later without further input fromthe user. Once the status information is saved, the client 1automatically disconnects from the modem pool 2 (step 503). The client 1then waits for a predetermined time interval T₁ (ten seconds, forexample) (step 504). At the expiration of the time interval T₁, theclient 1 determines whether an incoming call is still being received byattempting to detect a ring signal on the telephone line 29 (step 505).Detection of a ring signal would indicate that a third party is stillattempting to call in, since an on-hook condition after a Call Waitingsignal tells the Telephone Company Central Office telephone switch thatit is to transmit a ring signal. The client 1 further determines whetherall telephone extensions are on the hook (i.e., inactive, or closed)(step 506). This determination is made by sensing the impedance on thetelephone line 29. If no ring signal is detected and all extensions areon the hook, then the client 1 automatically redials the modem pool 2and resumes the previous browsing state based the status informationsaved earlier (step 507). If, however, either a ring signal is detectedor an extension is off the hook (active) (e.g., if another member of thehousehold had picked up an extension phone and had begun to dial), thenthe client 1 waits until that is not the case before re-establishing theconnection to the modem pool 2. Thus, whether the disruption was a CallWaiting interruption or a disruption from another person trying to makea call, the same mechanism gracefully handles the situation.

As mentioned above, it is assumed that the telephone service provided tothe home 15 includes Caller ID service. Note, however, that Caller IDservice is not essential to support the Call Waiting capabilities of thepresent invention. The present invention utilizes the Caller IDinformation to provide the user with information identifying the sourceof the incoming call. Referring now to FIG. 6, assume that an incomingtelephone call is received while the user is browsing the Web.Accordingly, the client 1 disconnects from the modem pool 2 after savingbrowsing status information. The client 1 then causes a message to bedisplayed to the user on the television set 12 indicating that anincoming call is being received (step 601). The client then waits forCaller ID information. This information is typically is received betweenthe first and second ring signal (step 601). If Caller ID information isreceived before the expiration of a preset time period, such as beforethe second ring signal (step 602), then the client 1 determines whetherthe phone number of the incoming call has previously been stored inmemory 23 with a corresponding name (step 603). If so, the namecorresponding to the source of the incoming call is retrieved frommemory 23 and displayed to the user in conjunction with the Call Waitingmessage (step 604). If no Caller ID information is received or if thereis no name corresponding to the incoming phone number stored in memory23, then a message is displayed to the user indicating that the name ofthe caller is unknown (step 608). If the user accepts the a incomingcall by picking up one of the telephone sets 10 within the predeterminednumber of rings, the routine ends (step 605). However, if the user doesnot accept the call, client 1 automatically answers the call.Specifically, the client 1 plays a recorded greeting to the caller (step606) and then digitally records any message the incoming caller choosesto leave (step 607). The message left by the incoming caller is alsoplayed to the user of the client 1 in real time as it is recorded, usingthe speaker of the television set 12 for audio output.

Referring now to FIG. 7, the next time the client 1 connects to theInternet, the client 1 automatically sends a request to appropriate“White Pages” database servers for the name of the source of the lasttelephone call (step 701), assuming Caller ID information was receivedfor that call. The request includes the telephone number provided by theCaller ID service. Such Web sites containing “White Pages” telephonedirectory information are well-known. The telephone directory Web siteallows the accessing party to search based on a given telephone numberor name. Accordingly, the client 1 automatically looks up the telephonenumber from the Caller ID information using the telephone directory Website (step 702). If the telephone directory Web site locates thetelephone number (step 703), then upon receiving the name, the client 1stores the telephone number and the corresponding name in memory 23 forfuture use (step 704). Hence, each time in the future an incoming callis received from that telephone number, the name of the calling party isautomatically retrieved from memory 23 and displayed to the user (FIG.6, step 604).

The present invention also includes a selective forwarding feature bywhich the user of the client 1 is automatically notified via e-mail ortelephone when an incoming telephone call is received from a specifiedsource, even if the user is at a geographic location different from thatof the client 1. The user initially selects a message forwarding optionand inputs an identity of a calling party to the client 1. The identitymay be specified in the form of a telephone number or a name. Numberbuttons on remote control 11 can be used to enter the digits of atelephone number. To enter alphabetical characters of a name, the usercan selects soft buttons within an image of a keyboard that is displayedon television set 12. Alternatively, the characters can be enteredthrough the use of a wireless keyboard. The user also selects aforwarding mode as either “e-mail,” “telephone,” or both and inputs adestination e-mail address and/or telephone number designating thelocation to which the forwarding message is to be sent.

FIG. 8 illustrates a routine by which the client 1 forward messages tothe user at a remote location. When an incoming call is received, thenif the user has selected the message forwarding option (step 801), theclient 1 determines whether the calling party identity specified by theuser matches the Caller ID information (step 802). If the user-specifiedidentity was provided as a name, the client 1 uses the identificationprocedures described above to determine if there is a match.Specifically, the client 1 determines whether the telephone number inthe Caller ID information is stored in memory 23 and, if so, whetherthere is a corresponding name stored.

If the Caller ID information does not match the user-specified calleridentity, the standard routine for handling incoming calls is performed(step 805). If, however, there is a match, then the client 1 waits untilthe line is clear (i.e., no incoming call is being received and allhandsets are on the hook) (step 803). When the line is clear, the client1 automatically dispatches a message to the location specified by theuser. The message may be a default message or a user-created message. Ifthe telephone mode was selected, the client 1 will automatically dialthe user-specified destination telephone number and play a pre-recordedmessage if the call is answered. Hence, using the above technique, theuser is notified immediately when a specified party calls, even when theuser is located away from the client 1.

The present invention also provides conventional e-mail capabilities.E-mail addressed to a WebTV™ user is stored in the WebTV™ server 5. Whene-mail addressed to the user is received by the server 5, the server 5signals this fact to the client 1 if the client 1 is presently connectedto the server 5. Upon receiving this signal, the client 1 provides anindication to the user that the user has e-mail. The indication isprovided in the form of a lighted LED (Light-Emitting Diode) built intothe housing of WebTV™ box 10, a text message displayed on television set12, or both. In one embodiment of the present invention, the client 1automatically dials out and connects to the WebTV™ server 5 at regularintervals or at specified times of the day to determine whether the userhas any new e-mail, and both downloads any e-mail into memory (e.g., RAM23) for fast retrieval and illuminates the LED.

Another feature of the present invention relates to reducing costsassociated with ISDN service. As mentioned above, the client 1 has botha standard telephone connection 29 a and an ISDN connection 29 b withthe server 5. It is well known that an ISDN connection permits fasterdata communication than a standard telephone connection according to thepresent state of the art. However, ISDN service tends to be moreexpensive than standard telephone service. Consequently, the presentinvention provides a means for reducing communications costs associatedwith accessing the Internet. Specifically, the client 1 keeps track ofthe time of day and routes communications through the ISDN connection 29b during hours which are not considered “prime time” for ISDN usage.However, the client 1 automatically directs communications through thestandard telephone connection 29 a during ISDN prime time, when ratesare most expensive.

In another aspect of the present invention, the client 1 automaticallydisconnects from the WebTV™ server 5 when no input from the user isreceived for a predetermined period of time. The current browsing statusis saved to memory 23 before disconnecting, as described above. Theconnection is automatically reestablished and the most recent browsingstatus is resumed as soon as the user enters any input which requiresaccess to the network. Hence, the user is not required to initiate aspecific log-in procedure in order to resume browsing.

Thus, a method is provided, in a client processing system coupled to aserver processing system, of managing communications between the clientand the server. Although the present invention has been described withreference to specific exemplary embodiments, it will be evident thatvarious modifications and changes may be made to these embodimentswithout departing from the broader spirit and scope of the invention asset forth in the claims. Accordingly, the specification and drawings areto be regarded in an illustrative rather than a restrictive sense.

What is claimed is:
 1. In a computer network including a plurality ofservers logically connected to one another and to a plurality of clientsystems, wherein at least some of the client systems are comprised of aconventional television monitor and an electronic unit for interactingwith the computer network, and wherein a client system can communicatewith a server system via any one of a plurality of communication links,a method of selecting a communication link for communicating with theserver system, comprising steps for: identifying a first communicationlink available to the client system for communicating with the serversystem; identifying a first cost and a first data transfer rateassociated with use of the first communication link; identifying asecond communication link available to the client system forcommunicating with the server system; identifying a second cost and asecond data transfer rate associated with use of the secondcommunication link; determining whether a prime usage time periodapplies to either of the first or second communication links; if a primeusage time period applies and a communication request is not within theprime usage time period, or if no prime usage time period applies,preferring the more expensive of the first and second communicationlinks for transmitting data between the client system and the serversystem if the more expensive communication link has a higher datatransfer rate than the less expensive communication link, and otherwise,preferring the less expensive of the first and second communicationlinks for transmitting data between the client system and the serversystem; and communicating with the server system via the preferredcommunication link.
 2. A method as defined in claim 1, wherein the firstcommunication link comprises an ISDN connection and the secondcommunication link comprises a telephone connection.
 3. A method asdefined in claim 1, wherein the first communication link comprises anISDN connection and the second communication link comprises a cabletelevision connection.
 4. A method as defined in claim 1, wherein thefirst communication link comprises an telephone connection and thesecond communication link comprises a cable television connection.
 5. Amethod as defined in claim 1, wherein: the first communication linkcomprises an ISDN connection; and the step for identifying the firstcost comprises a step for determining the time of day, the first costbeing a function of the time of day.
 6. A method as defined in claim 1,further comprising steps for: waiting a period of time, during which thefirst cost changes; identifying the changed first cost after the periodof time; based at least in part on a comparison of the changed firstcost to the second cost, preferring another communication link fromamong the first communication link and the second communication link fortransmitting data between the server system and the client system; andcommunicating with the server system via the preferred anothercommunication link.
 7. A method as defined in claim 1, furthercomprising steps for: determining that the preferred communication linkis idle; preserving a most recent communication status for the preferredcommunication link; and at least temporarily, terminating communicationover the preferred communication link with the server system.
 8. Amethod as defined in claim 7, further comprising steps for: determiningthat communication with the server system should be reestablished; andresuming communication with the server system, based on the most recentcommunication status and without requiring further input from the user.9. In a computer network including a plurality of servers logicallyconnected to one another and to a plurality of client systems, whereinat least some of the client systems are comprised of a conventionaltelevision monitor and an electronic unit for interacting with thecomputer network, and wherein multiple communication links are availableto be selected for communicating between a client system and a serversystem, a computer program product for implementing a method ofselecting a communication link comprising: a computer-readable mediumcarrying executable instructions for implementing the method at theclient system; and wherein said method comprises machine-executableinstructions that perform steps for: identifying a first communicationlink available to the client system for communicating with the serversystem; identifying a first cost and a first data transfer rateassociated with use of the first communication link; identifying asecond communication link available to the client system forcommunicating with the server system; identifying a second cost andsecond data transfer rate associated with use of the secondcommunication link; determining whether a prime usage time periodapplies to either of the first or second communication links; and if aprime usage time period applies and a communication request is notwithin the prime usage time period, or if no prime usage time periodapplies, preferring the more expensive of the first and secondcommunication links for transmitting data between the client system andthe server system if the more expensive communication link has a higherdata transfer rate than the less expensive communication link, andotherwise, preferring the less expensive of the first and secondcommunication links for transmitting data between the client system andthe server system.
 10. A computer program product as defined in claim 9,wherein the method further comprises a step for communicating with theserver system via the preferred communication link.
 11. A computerprogram product as defined in claim 9, wherein the method furthercomprises a step for determining the time of day, at least one of thefirst cost and the second cost changing with the time of day.
 12. Acomputer program product as defined in claim 9, wherein the methodfurther comprises steps for: waiting a period of time, during which thefirst cost changes; identifying the changed first cost after the periodof time; based at least in part on a comparison of the changed firstcost to the second cost, preferring another communication link fromamong the first communication link and the second communication link fortransmitting data between the server system and the client system; andcommunicating with the server system via the preferred anothercommunication link.
 13. A computer program product as defined in claim9, the method further comprising steps for: determining that thepreferred communication link is idle; preserving a most recentcommunication status for the preferred communication link; and at leasttemporarily, terminating communication over the preferred communicationlink with the server system.
 14. A computer program product as recitedin claim 13, the method further comprising steps for: determining thatcommunication with the server system should be reestablished; andresuming communication with the server system, based on the most recentcommunication status and without requiring further input from the user.15. In a computer network including a plurality of servers logicallyconnected to one another and to a plurality of client systems, whereinat least some of the client systems are comprised of a conventionaltelevision monitor and an electronic unit for interacting with thecomputer network, and wherein a client system can communicate with aserver system via one or more of a plurality of communication links, amethod of selecting a communication link for communicating with theserver system, comprising acts of: associating first information,including a first cost for use and a first data transfer rate, with afirst communication link that is available to the client system;associating second information, including a second cost for use and asecond data transfer rate, with a second communication link that isavailable to the client system; examining the information associatedwith each communication link to determine whether a prime usage timeperiod applies to either of the first or second communication links; ifa prime usage time period applies and a communication request is notwithin the prime usage time period, or if no prime usage time periodapplies, selecting the more expensive of the first and secondcommunication links for transmitting data between the client system andthe server system if the more expensive communication link has a higherdata transfer rate than the less expensive communication link, andotherwise, selecting the less expensive of the first and secondcommunication links for transmitting data between the client system andthe server system; and receiving data from the server system via theselected communication link.
 16. A method as defined in claim 15,wherein the first communication link comprises an ISDN connection andthe second communication link comprises a telephone connection.
 17. Amethod as defined in claim 15, wherein the first communication linkcomprises an ISDN connection and the second communication link comprisesa cable television connection.
 18. A method as defined in claim 15,wherein the first communication link comprises an telephone connectionand the second communication link comprises a cable televisionconnection.
 19. A method as defined in claim 15, wherein the firstcommunication link comprises an ISDN connection, and wherein the firstcost for use of the first communication link is a function of the timeof day, the method further comprising an act of keeping track of thetime of day.
 20. A method as defined in claim 15, wherein the first costchanges during a period of time, the method further comprising acts of:based at least in part on a comparison of the changed first cost to thesecond cost, selecting another communication link from among the firstcommunication link and the second communication link for transmittingdata between the server system and the client system; and receiving datafrom the server system via the selected another communication link. 21.A method as defined in claim 15, further comprising acts of: receivingeither no input or no input requiring access to the network for at leasta predetermined period of time; saving a most recent communicationstatus for the preferred communication link; and disconnecting thepreferred communication link from the server system.
 22. A method asdefined in claim 21, further comprising acts of: receiving input whichmay include input that requires access to the network; and reconnectingwith the server system, based on the most recent communication statusand without requiring further input from the user.
 23. In a computernetwork including a plurality of servers logically connected to oneanother and to a plurality of client systems, wherein at least some ofthe client systems are comprised of a conventional television monitorand an electronic unit for interacting with the computer network, andwherein a client system can communicate with a server system via one ormore of a plurality of communication links, a computer program productfor implementing a method of selecting a communication link forcommunicating with the server system, comprising: a computer-readablemedium carrying executable instructions for implementing the method atthe client system; and wherein said method comprises machine-executableinstructions that perform acts of: associating first information,including a first cost for use and a first data transfer rate, with afirst communication link that is available to the client system;associating second information, including a second cost for use and asecond data transfer rate, with a second communication link that isavailable to the client system; examining the information associatedwith each communication link to determine whether a prime usage timeperiod applies to either of the first or second communication links; ifa prime usage time period applies and a communication request is notwithin the prime usage time period, or if no prime usage time periodapplies, selecting the more expensive of the first and secondcommunication links for transmitting data between the client system andthe server system if the more expensive communication link has a higherdata transfer rate than the less expensive communication link, andotherwise, selecting the less expensive of the first and secondcommunication links for transmitting data between the client system andthe server system; and receiving data from the server system via theselected communication link.
 24. A computer program product as definedin claim 23, wherein the first communication link comprises an ISDNconnection and the second communication link comprises a telephoneconnection.
 25. A computer program product as defined in claim 23,wherein the first communication link comprises an ISDN connection andthe second communication link comprises a cable television connection.26. A computer program product as defined in claim 23, wherein the firstcommunication link comprises an telephone connection and the secondcommunication link comprises a cable television connection.
 27. Acomputer program product as defined in claim 23, wherein the firstcommunication link comprises an ISDN connection, and wherein the firstcost for use of the first communication link is a function of the timeof day, the method further comprising an act of keeping track of thetime of day.
 28. A computer program product as defined in claim 23,wherein the first cost changes during a period of time, the methodfurther comprising acts of: based at least in part on a comparison ofthe changed first cost to the second cost, selecting anothercommunication link from among the first communication link and thesecond communication link for transmitting data between the serversystem and the client system; and receiving data from the server systemvia the selected another communication link.
 29. A computer programproduct as defined in claim 23, the method further comprising acts of:receiving either no input or no input requiring access to the networkfor at least a predetermined period of time; saving a most recentcommunication status for the preferred communication link; anddisconnecting the preferred communication link from the server system.30. A computer program product as recited in claim 29, the methodfurther comprising acts of: receiving input which may include input thatrequires access to the network; and reconnecting with the server system,based on the most recent communication status and without requiringfunrther input from the user.